Intelligent call processing platform for home telephone system

ABSTRACT

The present invention comprises an intelligent call processing platform for use with a home telephone system. The system consists of a processing unit interfaced with a variety of memory storage areas, a switching central office providing local telephone service and a plurality of telephone handsets. Using a variety of voice and/or pushbutton commands, a user is able to access a variety of telephone services from any telephone interfaced with the platform. Services provided include identification of incoming callers, automatic speed dialing of user-stored telephone numbers, storage of new numbers to the user-stored list of telephone numbers, and control of peripheral systems interconnected with the intelligent call processing platform.

This is a continuation of application Ser. No. 08/348,788 filed on Dec.2, 1994, now abandoned.

TECHNICAL FIELD

The present invention relates generally to a centralized control systemfor a group of telephones located, for example, in a home, and moreparticularly to the use of voice commands in conjunction with voicerecognition and speaker verification techniques to provide a variety oftelephone services for the users of such telephones.

BACKGROUND OF THE INVENTION

Conventional telephone systems for the home or office include one ormore telephone sets normally connected to a telephone switching center(i.e., a central office, PBX, or key telephone system) through a cable.With the advent of economical and reliable digital technology, recentlyit has been possible to provide enhanced functionality to the typicaltelephone. Thus, many companies are now manufacturing and marketing suchdevices as videophones, display phones, digital answering machines,screen-based, menu-driven phones and the like. These devices facilitateprovision of various caller services including call forwarding, callwaiting, voice store and forward, billing assistance, calleridentification, and other functions. Although such devices providesignificant operational capabilities as compared to conventionaltelephone sets, there are a myriad of service offerings and the varioustypes of equipment have yet to be successfully integrated into a singlesystem that can be conveniently or selectively controlled by thetelephone users.

Thus, there remains a need to provide an intelligent call processingapparatus for interfacing to, to be controlled through, and to control aplurality of telephones located in a defined area, such as a home, tofacilitate enhanced telephone service offerings.

BRIEF SUMMARY OF THE INVENTION

It is an object of the present invention to provide a centralizedcontrol system for one or a plurality of telephones in a home or othersimilar environment wherein preferably voice commands are used tocontrol access to and operation of one or more telephone serviceofferings.

It is a further feature of the present invention to implement a voicerecognition and-or speaker verification control system in conjunctionwith an intelligent call processing platform interconnected to aplurality of telephone sets to thereby provide feature control of one ormore telephone service offerings.

It is still another feature of the invention to provide an intelligentcall processor connectable to telephone sets in a home or officefacility to provide monitoring of incoming telephone calls to facilitatepreferably voice control over one or more enhanced caller services, forexample, caller identification, call-blocking, call store and forward,or smart ringing.

It is another object to provide a call processing platform thatfacilitates a central implementation of a number of ancillary servicesfor all telephones in the home, even if such telephones are conventionalhandset devices.

It is a still further object of the invention to describe an intelligentprocessing apparatus that interfaces to telephone sets to monitor anincoming telephone line, whether that line is a conventional wire line,coaxial cable, or wireless connection. The apparatus is preferablyvoice-activated and controlled to provide one or more call services atthe request of selective persons in the home but may also be operatedvia DTMF digits.

It is yet another object of the present invention to provide anapparatus having on-line monitoring capabilities for the selectiveoffering and providing of various ancillary services under the voicecontrol of one of the parties to the call.

The foregoing has outlined some of the more pertinent objects of thepresent invention. These objects should be construed to be merelyillustrative of some of the more prominent features and applications ofthe invention. Many other beneficial results can be attained by applyingthe disclosed invention in a different manner or modifying the inventionas will be described. Accordingly, other objects and a fullerunderstanding of the invention may be had by referring to the followingDetailed Description of the preferred embodiment.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference should be made to the following DetailedDescription taken in connection with the accompanying drawings in which:

FIG. 1 is a block diagram of a telephone system incorporating the basicversion of the intelligent call processing platform of the presentinvention; and

FIG. 2 is a block diagram of a telephone system incorporating theenhanced version of the intelligent call processing platform of FIG. 1;

FIG. 3 is a detailed system diagram showing the components of theintelligent call processing platform of FIG. 1 and FIG. 2;

FIG. 4 is a flow chart of the executive routine from which all otherroutines are accessed;

FIG. 5 is a flow chart of the incoming call handler routine fordirecting and/or controlling incoming telephone calls;

FIG. 6 is a flow chart of the routine for playing messages to incomingcalls;

FIG. 7 is a flow chart of the routine for recording messages fromincoming calls;

FIG. 8 is a flow chart showing the originating call/command handlerroutine which is accessed by the executive routine of FIG. 4 fordefining operations that occur when the handset of a connected telephonehas been lifted;

FIG. 9 is a flow chart of the routine for acquiring spoken commands;

FIG. 10 is a flow chart of the spoken digit collection routine used toobtain spoken numeric sequences;

FIG. 11 is a flow chart showing the routine for providing speed dialingcapabilities from spoken key words;

FIG. 12 is a flow chart of the routine for providing speed dialingcapabilities from speaker-dependent words stored by the user andassociated with each telephone number or numeric sequence to be dialed;

FIG. 13 is a flow chart showing the routine for programming speed dialnumbers using key words;

FIG. 14 is a flow chart showing the routine for programming speed dialnumbers using numeric memory locations;

FIG. 15 is a flow chart showing the routine for programming speed dialnumbers using speaker-dependent directory words;

FIG. 16 is a flow chart showing the routine for changing programmingparameters through both local and remote access;

FIG. 17 is a flow chart of the routine for playing back messages fromcallers; and

FIG. 18 is a flow chart of the peripheral control routine used tooperate lights, thermostats, alarm systems, televisions, stereos, orother electronic devices.

Similar reference characters refer to similar parts throughout theseveral views of the drawings.

DETAILED DESCRIPTION

As seen in FIG. 1, the intelligent call processing platform 2 of thepresent invention is preferably implemented in a home which typicallyincludes one or a plurality of telephone sets 4a . . . 4n. FIG. 2 showsan enhanced version of FIG. 1 and allows for additional features. Thecore system components shown in FIG. 3 for both FIG. 1 and FIG. 2 arethe same with the exception that the system depicted in FIG. 2 isinstalled in a personal computer or any processor controlled system andutilizes the optional PC interface 36. Although the present invention isshown in the environment of a home, it should be appreciated that theintelligent call processor is likewise useful whenever it is desired toprovide a number of telephone sets with certain enhanced features aswill be seen. Thus, the example of an intelligent home system is merelyexemplary.

The intelligent call platform is preferably connected between aswitching system or switching central office and the telephone sets 4.As seen in FIG. 1 or FIG. 2, the platform is connected to all of thetelephone sets, although this is not a requirement of the system. Themethod of connection between the platform and telephone sets may beserial or parallel. The switching office is typically a local telephoneoperating company central office operating within a so-called localaccess and transport area (LATA) although this is not the onlyconfiguration in the invention. When long distance service is required,the call is usually transmitted through the operating company centraloffice to a point of termination in the originating LATA at which it ispicked up by a common carrier and passed by that carrier on to atermination point in a local or distant LATA. Such operation isconventional in the art. Moreover, while the physical connections shownin FIG. 1 and FIG. 2 are typical it is envisioned that the home beconnected to the switching office alternatively via a coaxial cable,fiber optic cable, wireless link or other suitable connection. Suchalternative communication channels are also known.

The intelligent processing platform shown in the system diagram of FIG.3 includes a voice recognition algorithm as well as a speakerverification algorithm to facilitate voice-controlled access and controlover various service offerings. The platform may alternatively includeDTMF digit recognition algorithms to provide access and control over theservice offerings. The platform includes a digital signal processor(DSP) 42 for controlling the overall operation of the system. The DSPincludes data, address, and control buses represented in FIG. 3. As seenin FIG. 2, the enhanced platform 10 may also include conventionalinput/output devices such as a keyboard 12 and display terminal 14 andmay additionally include a mouse, microphone, speech generator, andprinter. A communications interface 52 interfaces the platform to theinternal telephone sets and a communications (C.O.) circuit 48interfaces the platform to external telephone lines. If alternativecommunication links (such as coaxial cable) are used, the interface 48will include additional circuitry to interface the additional signaling(such as video or the like) to the intelligent processing platform.

The platform also includes a voice and/or video store and forwardcapability for recording messages. Random access memory ("RAM") 32 isconnected to the DSP by the address, data, and control buses forproviding temporary storage of data processed thereby. Read only memory("ROM") 28 is likewise connected to the digital processor for providingnonvolatile operational code. ROM 34 is likewise connected to thedigital processor for providing permanent storage of speaker-independentrecognition tables and prestored messages for instructing the user onhis/her progress when operating the system. Verification data is storedin programmable nonvolatile FLASH Memory 30. For the enhanced version,disk storage on the personal computer 10 may support control programsincluding the voice recognition algorithm and the voice verificationalgorithm as well as suitable control programs (not shown). A voicecommand system of this type is described in copending application Ser.No. 07/523,486, filed May 15, 1990, to Hunt et al., titled "SimultaneousSpeaker-Independent Voice Recognition And Verification Over A TelephoneNetwork," assigned to the assignee of the present invention andincorporated herein by reference.

The voice recognition algorithm may be based on speaker-dependent orspeaker-independent discrete, speaker-independent phonetic, connected orcontinuous recognition. Such techniques are known in the art. Wherereduced cost is required, speaker-dependent algorithms are preferablyused. A predetermined set of commands may be used in the system and/orcommands may be created in a known manner. In particular, where the userdesires to create special commands, the system prompts the user to speakthe command a number of times while the recognizer is "trained" in aconventional manner. A template (e.g., speech reference data) is createdfor each command and store in memory, and the user typically will thenenter the telephone number associated with such command for laterretrieval whenever the command is recognized. Thus a user may create anumber of special call commands, e.g., "account balance," "directoryassistance," "grandma," etc., the recognition of which control theprocessing platform to dial a stored number and/or dialing sequenceassociated therewith.

The platform shown in FIG. 3 also includes a speaker verificationreference database stored in FLASH Memory 30 comprising speakerverification class reference data collected from users authorized toaccess the service offerings. In this way, the platform allows controlover the service offerings by selected members of the home. Thus, forexample, one or more family members may enroll his or her "voice" in thespeaker verification reference database and thus, as will be seen,exercise control over the ability of other members (such as children) toaccess certain services. Thus, certain of the service offerings may beprogrammed to be accessible only if voice commands are both recognizedand/or verified to have come from a person authorized to obtain theservice. The use of speaker verification thus provides an additionallevel of security which has numerous advantages. For example, parentsmay program the platform to prevent children from making unauthorizedcalls since such calls will only be allowed if the voice command used toinstitute the call is both recognized and the speaker is authorized forthe service. Additionally, the speaker verification capability willprovide security for remotely accessing recorded messages and will allowuser specific access to the recorded messages. Recorded messages will bestored in the Flash Memory of FIG. 3 for systems as shown in FIG. 1, butmay optionally be stored on the disk drive of the personal computer 10of FIG. 2, or any other system memory.

In a caller identification application, the database in the platform maybe programmed to include one or more telephone numbers or groups oftelephone numbers that the homeowner desires to block; alternatively,the database may be programmed to identify those telephone numbers fromwhich the caller desires to receive calls. Additionally, specificoutgoing calls may be blocked respectively for each user. Whenundesirable calls are received, the platform redirects the calls to theplay message routine of FIG. 6 or the record routine of FIG. 7 to playan audio and/or video announcement message and/or to record a messagefor the homeowner. The calls are identified using the Caller ID numbertransmitted with each telephone call.

The platform is preferably accessible for each of the telephones in thehome (or the platform itself via the microphone) to facilitate voicecontrol of such functions as dialing, call forwarding, voice store andforward, smart ring, caller identification, call waiting, messageplayback, and the like. Incoming calls may be directed to specifictelephones or messaging centers using smart ring or incoming calleridentification. Alternatively, the telephone systems may be accessed bypush button when DTMF recognition procedures are used.

Referring now to FIGS. 4 through 18, wherein there is illustrated aplurality of flow charts illustrating the operating routines enablingvoice or DTMF control of a variety of telephone services through theIntelligent Call Processor Platform. FIG. 4 illustrates the executiveroutine through which all calls and all command routines are accessed.The system monitors at step 102 for an incoming call. When an incomingcall is detected, the call is forwarded to the incoming call handlerroutine which will be more fully discussed with respect to FIG. 5. Whenno incoming calls are detected control passes to inquiry step 104 todetermine if an off-hook condition exists. When no off-hook conditionexists, control returns to step 102, and the executive routine continuesto monitor for either an incoming call or telephone off-hook condition.If a telephone off-hook condition is detected, control passes to theoriginating call/command handler routine described with respect to FIG.8.

Referring now to FIG. 5, there is illustrated the incoming call handlerroutine. The incoming call handler routine directs and/or controlsincoming telephone calls and assists in routing the call to the propertelephone service. A test performed at step 202 determines if thesmart-ring service is active for the incoming call. If so, thesmart-ring table stored in FLASH MEMORY 30 is accessed at step 204 todetermine the proper telephone port to signal for the incoming call. Thetelephone port flag corresponding to the determined port is set at step206. Once the telephone port flag is set or inquiry step 202 determinesthe smart-ring feature is not active, inquiry step 208 determines if theCaller I.D. function is active for the incoming call. When the CallerI.D. function is active, the Caller I.D. table is checked at step 210 todetermine the telephone port to signal and the identity of the callerbased upon the Caller I.D. transmitted with the call. The correspondingtelephone port flag is set at step 212.

After setting the correct telephone port flag or determining the CallerI.D. function is not active, step 214 determines if a prerecordedmessage is to be played after the second or fourth ring. If such amessage is to be played, the platform checks a function table and answerflag based upon the Caller I.D. and/or the smart-ring flags at step 216to determine whether or not to answer the call. If the call should beanswered, test step 218 passes control to step 220. When the call isanswered, the play and record message flags are checked at step 220, anddecision step 222 transfers control to either the play message routineof FIG. 6 or to the record incoming call routine of FIG. 7 based uponthe settings of the control flag. A platform user may also set the flagsafter having an incoming call identified to the user based on the CallerI.D. The received Caller I.D. number may be looked up in the Caller I.D.table and the user notified of the name associated with the Caller I.D.,or if the I.D. number is not in the table, the user may be notified withthe calling number.

In accordance with another feature of the invention, an announcing meansmay announce to a user an identification associated with the sourceidentifier of an incoming call after a trigger recognizer receives acommand trigger input by the user through a telephone in the on-sitetelephone system.

Also, in accordance with another feature of the invention, all incomingcalls are forwarded to a telephone service for recording messages inresponse to receipt of another command trigger by the triggerrecognition means.

If the call is not answered or if a message is not to be recorded orplayed after the second or fourth ring, control passes to step 224 toscan for an incoming ring signal. When an incoming ring signal isdetected, the processor checks the telephone port flags at step 226 todetermine which telephones connected to the platform should be rung.Test step 228 determines if a ring parameter conflict exists, and ifsuch a conflict exists, the smart-ring parameter takes priority at step230. The ring signal is generated at step 232 to the selectedtelephone(s). When no ring parameter conflict exists, the ring signal isalso generated at step 232 to the selected telephone(s).

Next, inquiry step 234 determines if the telephone is in an off-hookcondition. When an off-hook condition does not exist, the incoming callring count is incremented at step 236 for the present call. Inquiry step238 determines if the call answer flag has been set, and if not,performs a test at step 240 to determine if the call ring count equalsten. If the call ring count equals ten, control passes to the systemaccess routine of FIG. 16 to enable an outside caller to remotely accessthe system. If the call ring count does not equal ten or if the answerflag has not been set, a test is performed at step 244 to determine theexistence of an incoming call or an off-hook condition. Control thenpasses back to the executive routine of FIG. 4.

Returning now to inquiry step 234, if the telephone is determined to bein an off-hook condition, the ring voltage to the telephone isdiscontinued, the smart-ring and I.D. port flags are reset and the audiopath connected at step 242. The telephone is tested for an on-hookcondition at step 248 until an on-hook condition is detected. Controlthen returns to the executive routine of FIG. 3.

Referring now to FIG. 6, there is illustrated the routine for playingmessages to incoming calls. Once inquiry step 222 of FIG. 5 determines amessage is to be played, the message in progress flag is set at step502. The phone is indicated at step 504 to have an off-hook condition atthe central office and a prerecorded outgoing message is played basedupon the Caller I.D. and/or ring cadence. A test is performed at step506 to monitor for an interrupt condition of either a DTMF "0" digit orthe spoken command "CONTROL FUNCTIONS." If an interrupt condition isdetected, the outgoing message is interrupted and control passes to thesystem access routine of FIG. 16. Otherwise, after the prerecordedmessage has been played, the call is disconnected, an on-hook conditionis indicated to the central office and the message in progress flag isreset at step 508. Control then returns to the executive routine of FIG.4 to monitor for additional incoming calls or telephone off-hookconditions.

Referring now to FIG. 7, there is illustrated the record incoming callroutine. This routine records an incoming call routed to its controlfunctions. If inquiry step 222 of FIG. 5 indicates a call is to berecorded, the recording in progress flag is set at step 602. Next, theplatform notifies the central office of an off-hook condition, plays aprerecorded outgoing message based upon the Caller I.D. and/or ringcadence and records a message from the incoming call at step 604.Inquiry step 606 monitors for an interrupt condition consisting eitherof a DTMF of "0" digit or the spoken command "CONTROL FUNCTIONS." If oneof the interrupt conditions are detected, control passes to the systemaccess routine of FIG. 16. Otherwise, the recorded message is stored atstep 608 based upon the Caller I.D. and/or ring cadence. The system thenresets the recording in process flag, disconnects the call and providesan on-hook indication to the central office at step 610.

Referring now to FIG. 8, there is illustrated the originatingcall/command handler routine. This routine enables access of telephonefunctions from within the platform once the handset of a telephoneconnected to the platform has been placed in an off-hook condition. Oncean off-hook condition is detected by inquiry step 104 of FIG. 4, a dialtone is generated at step 304 to the user. This may be the dial tonefrom the central office or an artificially generated dial tone. Inquirystep 308 tests for receipt of a DTMF digit. If a DTMF digit is detected,the dial tone is discontinued, and the provided DTMF digits arecollected at step 316. Next, a check is performed at step 320 for anyincoming calls. If no incoming calls are detected, tests are performedat step 322 and 324 to determine if the message in progress or recordingin progress flags are set.

If neither of these flags are set, the outgoing line is seized, and thecollected DTMF digits are outpulsed at step 332. If an incoming call isdetected, or the message in progress or recording in progress flags areset, a message is played at step 326 asking the user to hold. Test Step328 monitors for disconnection of the incoming call, and seizes theoutgoing line at step 332 once the incoming call is disconnected. Oncethe outgoing line is seized, the DTMF digits are outpulsed and the audiopath is connected. Step 334 monitors for an on-hook condition and passescontrol back to the executive routine of FIG. 4 when an on-hookcondition is detected.

If no DTMF digits are detected at step 308, inquiry step 310 tests for aspeech command on the telephone line. When a speech command is detected,the dial tone is discontinued at step 314 and control passes to thespoken command control routine of FIG. 9. When no speech commands aredetected at step 310, inquiry step 312 monitors for an on-hookcondition. If no on-hook condition exists, control returns to step 308and the platform continues to monitor for DTMF digits or voice commands.When an on-hook condition is detected, the routine returns to theexecutive routine of FIG. 4.

Referring now to FIG. 9, there is illustrated the spoken command controlroutine. This routine enables a user to vocally select a variety oftelephone services. The spoken command detected at step 310 of FIG. 8 isretrieved at step 802. A variety of tests are performed at steps 804,806, 808 and 810 to determine which spoken command has been received. Ifa "DIAL" command is detected at step 804, control passes to the spokendigit collection routine of FIG. 10. If a "CALL" command is detected atstep 806, control passes to the key word speed dialing routine of FIG.11. The detection of a "DIRECTORY" command at step 808 passes control tothe speed dialing from user director routine of FIG. 12. Finally, if a"SELECT" command is detected at step 810, the command is processedwithin the local branch of the system access routine of FIG. 16. If noneof these voice commands are detected, an error condition exists and the"Error, please repeat" message is played to the caller or user at step812. Control then returns to step 802 to monitor for the repeated spokencommand.

Referring now to FIG. 10, there is illustrated the spoken digitcollection routine. This routine accepts a spoken digit string,representing a telephone number, from a user and forwards the number fordialing. A user is prompted at step 1002 with a "Phone number please"message to begin collection of the spoken number string. Inquiry step1004 determines if a spoken digit has been collected. If a digit has notbeen collected, inquiry step 1006 determines if a time-out period forcollection of the digit has elapsed. Once the required time-out periodelapses a "Please enter digit" message plays at step 108 to prompt theuser to enter or re-enter the required digit. Once step 104 determines adigit has been collected, a short beep is generated to the user at step1010 to indicate the digit has been received and recognized. Inquirystep 1012 calculates if the previously collected spoken digit was thelast digit expected in the string. If not, the digit is saved in astring buffer at step 1014 and control passes back to step 1004 toaccept the next digit in the string.

Once the last digit of the numeric string has been collected, thespeaker-independent recognizer is engaged at step 1016. Step 1018monitors for the spoken command "VERIFY." If the "VERIFY" command is notreceived, a message instructing the user to repeat the "VERIFY" commandis played at step 1020. Once a "VERIFY" command is recognized, theplatform repeats the digit string to the user at step 1022.

Inquiry step 1024 monitors for the "STORE" voice command and passescontrol to the key word speed dial number storage routine of FIG. 13when the command is detected. If no "STORE" voice command is detected,step 1026 monitors for a "SEND" voice command. Once a "SEND" voicecommand is detected, control passes to step 320 of the originatingcall/command handler routine of FIG. 8 to output the collected digitstring. Otherwise, the message "Error, please repeat" prompts the userat step 1028 to provide the "STORE" or "SEND" command.

Referring now to FIG. 11, there is illustrated the key word speeddialing routine. This routine enables a user to access a previouslystored telephone number in response to a spoken speaker-independent keyword. At step 1102, the platform plays a message "Calling," promptingthe user to begin the key word dialing sequence. The speaker-independentrecognizer is engaged at step 1104 to obtain a user response. Thespeaker-independent recognizer monitors at step 1106 for the spokencommand "MEMORY." If the "MEMORY" command is not detected, the user mustspeak a valid key word at step 1108 to speed dial the associated number.Examples of valid key words include "BANK", "ACCOUNT BALANCE", "OFFICE","TIME", "SECRETARY", "FRIEND", "WORK" AND "INFORMATION." This list isnot intended to be exhaustive and any number of key words may be used.Inquiry step 1110 determines if a valid key word has been spoken. If theplatform, does not recognize the key word, step 112 prompts the userwith the message "Error, please repeat." When the key word is acceptedas valid, a "Calling" message is played at step 114.

If the command "MEMORY" is detected at step 1106, the user is promptedwith message "Which memory" and the speaker-independent recognizer isengaged. At inquiry step 1130 the speaker-independent recognizerdetermines if a two-digit memory location number has been spoken by theuser. If not, the platform performs a test check at step 1132 todetermine if the time out period has elapsed. Once the time out periodelapses, the user is prompted at step 1134 with a "Please enter nextdigit" message. Once the 2-digit memory location number is collected,the telephone number associated with the memory location number isrecalled at step 1136 from FLASH memory 30. The user is then notified atstep 114 with a "Calling" message.

Once a key word or memory call location is collected, thespeaker-independent voice recognizer is engaged at step 1116. Thespeaker-independent voice recognizer monitors at inquiry step 1118 for aspoken command "VERIFY", and when the "VERIFY" command is detected, thestored number associated with the key word or memory location isrepeated to the user at step 1122. At inquiry step 1124, thespeaker-independent recognizer monitors for a spoken command "CLEAR"indicating that the user desires to clear the number retrieved and startagain. If so, the taped message "Ready" is played at step 1126 andControl returns to step 1108. If neither the "CLEAR" command nor the"VERIFY" command are recognized, inquiry step 1120 determines if thevoice command "SEND" has been spoken. If not, the user is prompted atstep 1138 with an "Error, please repeat" message and control passes backto step 1116. Otherwise, control passes to step 320 of the originatingcall/command handler routine of FIG. 8 to call the selected number.

Referring now to FIG. 12, there is illustrated the routine for speeddialing from a pregenerated user directory. This routine enables a userto speed dial a number from a preexisting directory usingspeaker-dependent names. The user is prompted at step 1202 with a "Nameplease" message. Step 1202 also engages the speaker-dependentrecognizer. At inquiry step 1204, a determination is made if a spokenname has been collected and recognized by the speaker-dependentrecognizer. If no name has been recognized, step 1220 determines if thetimeout period has elapsed, and if not, prompts the user at step 1222with an "Error, please repeat" message. Once the timeout period elapses,the user is further prompted with the "Name please" message of step1202.

Once the name is collected at step 1204, the telephone number associatedwith the name is recalled at step 1206 from FLASH memory 30. The storednumber is played to the user at step 1208 after which the user isprompted with a "Correct" message. Inquiry step 1210 then monitors for aspoken command "CORRECT." Upon detection of the "CORRECT" command, theuser is provided with a "Dialing" message and control passes to step 320of the originating call/command handler routine of FIG. 8. When the"CORRECT" command is not received, control returns to step 1202 to havethe user repeat the name.

Referring now to FIG. 13, there is illustrated the key word speed dialnumber storage routine. This routine enables a user to associate aselected speaker-independent key word with a telephone number and havethe number and associated key word stored in memory. Initially, the useris prompted at step 1402 with a "Storing" message as the digit stringfrom FIG. 10 is saved, and the speaker-independent recognizer isengaged. The speaker-independent speech recognizer monitors at step 1404for the spoken command "MEMORY." This enables the user to stop thenumber at a location identified by a two-digit memory code. If the"MEMORY" command is received, control passes to the memory speed dialnumber storage routine of FIG. 14. Otherwise, the spoken independentrecognizer monitors at step 1406 for a spoken command "DIRECTORY." Ifthe "DIRECTORY" command is detected, control passes to the directorspeed dial number storage routine of FIG. 15, and the user may store adirectory name or a number associated with a directory name.

When neither a "MEMORY" nor "VOICE" command is detected, the recognizermonitors at step 1410 for entry of a new speaker-independent key word.When no new key word is detected, an "Error, please repeat" messageprompts the user to enter a spoken command or key word at step 1420 andcontrol returns to inquiry step 1404. When a new key word is collected,the user is prompted at step 1412 with a "Storing (key word) correct"message. Inquiry step 1414 then determines if the received key word wascorrect. If not, a "Location, please" message prompts the user at step1418 to repeat the key word and control returns to step 1410. Once thecorrect key word is entered, the system advises the user at step 1416with a "Storing" message, and the number and associated key word arestored in FLASH memory 30. Control then passes to step 304 of theoriginating call/command handler routine of FIG. 8.

Referring now to FIG. 14, there is illustrated the memory speed dialnumber storage routine. This routine allows the user to store aparticular number in a selected memory location having an associatedtwo-digit memory code. The user is prompted at step 1502 with a "Whichmemory?" message and the speaker-independent recognizer is engaged. Atinquiry step 1504, the speaker-independent voice recognizer monitors forreceipt and recognition of a 2-digit memory location number. If bothdigits have not been received, the routine continues to cycle throughstep 1506 until a timeout period has elapsed. If both digits have notbeen received, and the timeout period elapses, the user is prompted atstep 1508 with a "Please enter next digit" message.

Once both digits for the memory location code are received andrecognized, the user receives a "Storing memory (two-digits), correct?"message, indicating the two-digit memory location number the system hascollected. If the digits are incorrect, the speaker-independentrecognizer is reengaged, the user is prompted at step 1512 with a"Location please" message and control returns to step 1504 to enable theuser to reenter the memory location digits. If the received memorylocation number is correct, a test is performed at step 1516 todetermine if the storage memory is full. If not, the user receives a"Storing" message and the number is stored in FLASH memory at step 1518at the indicated memory location number. System control then returns tostep 304 of the originating call command handler routine of FIG. 8.

If step 1516 determines the FLASH memory locator is full, the user isprovided with a "Memory full, erase?" message at step 1520. Thespeaker-independent recognizer then monitors at step 1522 for the voicecommand "ERASE." If no "ERASE" command is received, the procedure endsand control passes to step 304 of the originating call/command handlerroutine of FIG. 8. If the "ERASE" command is detected, the user isprompted at step 1524 to confirm the erase instruction, and the voicerecognizer again monitors at step 1526 for the voice command "ERASE." Ifthe "ERASE" command is confirmed, the identified location entry iserased at step 1528.

Referring now to FIG. 15, there is illustrated the directory speed dialnumber storage routine. This routine stores a number in a personaldirectory responsive to speaker-dependent directory names. The personaldirectory will be responsive only to commands from a particular user.Initially, the routine checks at step 1604 to determine if the selectednumber is already stored in FLASH memory. If the number is presentlystored, the user is prompted with a "Re-enroll" message at step 1616.The speaker-independent speech recognizer then monitors at step 1618 todetermine if the user wishes to re-enroll the directory name. If theuser wishes to re-enroll the directory name, the user is prompted atstep 1610 for a name to be associated with the number. If the directoryname is not to be re-enrolled, an "Erase" message prompts the user andthe voice recognizer monitor is engaged at step 1620. Inquiry step 1622determines if the user wishes to erase the directory number. If not,control passes to step 304 of FIG. 8. If the directory number is to beerased, the associated number is erased and two beeps notify the user ofthe erasure at step 1624. Command control then returns to step 304 ofFIG. 8.

If inquiry step 1604 determines the number is not presently enrolled inmemory, the user is prompted with an "Enroll" message and engages thespeaker-independent recognizer. A test at step 1608 determines if thenumber should be enrolled. If the number is not to be enrolled, controlpasses to step 304 of the originating call/command handler routine ofFIG. 8. Otherwise, the user is prompted at step 1610 for a name to beassociated with the number and the speaker-dependent recognizer isengaged. The user speaks the name to be associated with the number threetimes at step 1612 to program the speaker-dependent template. The newdirectory name and associated telephone number are stored at step 1614in FLASH memory, and the user is notified of this by two beeps. Controlthen passes to step 304 of the originating call/command handler routineof FIG. 8.

Referring now to FIG. 16, there is illustrated the system accessroutine. The system access routine enables access to the platform eitherremotely beginning at point 700 or locally beginning at point 1300. Theaccess pathway depends on whether a caller from an outside line isaccessing the platform, or the caller is using one of the local platformtelephones. When the platform is accessed remotely, the outgoing messagebeing played is discontinued and the caller is provided with a "Ready"message at step 702. The system then waits for a command trigger andsets the remote access flag. The user enters at step 704 a four-digitspeaker verification code to access the platform. A test performed atstep 706 determines if the verification code is valid. If not, thecaller is notified of the invalidity of the code, the call isdisconnected and flags are reset at step 1316.

When a valid code is received, a "Command please" message prompts theuser at step 708, and the platform waits for a command trigger. Atinquiry step 710, the platform monitors for either the voice command"MESSAGES" or a DTMF "1" digit. If one of these triggers are detected,the system determines at inquiry step 1318 if any messages areavailable. When no messages are available, control returns to step 708to await additional command triggers. If messages exist, control passesto message playback routine of FIG. 17. Inquiry 712 tests for either thevoice command "FUNCTIONS" or a DTMF "2" digit. If either of thesetriggers are detected, control passes to the peripheral control routineof FIG. 18. Otherwise the system generates two beeps to the remotecaller at step 714 and control passes back to step 708.

If a user accesses the system locally through point 1300, the user isinitially prompted with a "Command please" message at step 1302 andawaits a command trigger. Inquiry step 1304 determines if the voicecommand "MESSAGES" is spoken and, if so, the user is prompted at step1310 to enter a verification code. The user enters a four digit speakerverification code at step 1312, and the validity of the code is testedat inquiry step 1314. If the verification code is valid, control passesto step 1318 to provide the user access to his messages as previouslydescribed. If the verification code is invalid, control passes to step1316 and the user is notified of the invalid code and disconnected fromthe platform. If no "MESSAGE" command is received, inquiry step 1306monitors for a voice command "FUNCTIONS" and passes control to theperipheral control routine if the "FUNCTIONS" command is detected.Otherwise, two beeps are generated to the user at step 1308 and controlpasses back to step 1302 to monitor for command triggers.

Referring now to FIG. 17, there is illustrated the message playbackroutine. This routine enables a user to review recorded messages.Messages are retrieved at step 1702 based upon the speaker verificationnumber provided by the user, and the messages associated with theidentified speaker are played. Inquiry step 1704 monitors for receipt ofDTMF digits or any spoken commands during playing of the messages. Ifneither is detected, step 1722 monitors for the end of the selectedmessages and continues playback at step 1720 until the end of themessages is detected. Once the end of the messages is reached, the useris prompted at step 1724 with a "Clear Messages" message. Inquiry step1726 determines if the messages are to be cleared. If the messages arenot to be cleared, control passes to step 1730 wherein the call isdisconnected if the remote access flag is set. If the messages are to becleared, they are erased at step 1728. Control then returns to theexecutive routine of FIG. 4.

If a DTMF digit or spoken command is detected at step 1704, inquiry step1706 determines if the received command is either a DTMF "3" digit or aspoken command "SKIP." If so, the systems proceeds to the next recordedmessage at step 1704. If a DTMF "4" digit or "BACK" command is detectedat inquiry step 1708, the current message is repeated at step 1716. Ifeither a DTMF "5" digit or "DELETE" command is detected at step 1710,the current message is erased at step 1718. If none of theabove-described triggers are detected, the input is ignored at step 1712and control passes back to step 1722.

Referring now to FIG. 18, there is illustrated the peripheral controlroutine. The peripheral control routine enables a user to access andcontrol a variety of systems 18, 20, 22, 24, 26 within a home orbusiness through the telephone system using a series of voice commands.When the peripheral control routine is accessed, the user is initiallyprompted at step 1824 with a "Ready" message. The system then monitorsfor the spoken command "ANSWER" at step 1802. If the "ANSWER" command isreceived, the telephone answering device functions are turned on or offat step 1814. If no "ANSWER" spoken command is received, the system typeis checked at step 1804. Test step 1806 monitors for the commandenhanced. If not detected, control returns to the prompting step 824. Ifthe enhanced command is received, inquiry steps 1808, 1810 and 1812monitor for the commands lights 24, thermostat 20 or alarm 18respectively. If none of these spoken commands are detected, controlreturns to prompting step 1824.

If a "LIGHTS" command is received, the lights 24 may be dimmed or turnedon or off at step 1816 using spoken commands. If the "THERMOSTAT"command is received, the user may check and change the thermostatsettings using spoken commands at step 1818. If the "ALARM" command isreceived, the user may turn on or off the perimeter alarm system 18using spoken commands at step 1820. Once access of the peripheraldevices is complete, control passes to step 1824 wherein the call isdisconnected, remote access flag is set and all other flags cleared atstep 1822 wherein all flags are reset and the call is disconnected. Thesystem then returns to the executive routine described in FIG. 4.

While the above description of FIGS. 4 through 18 have been given withrespect to the use of vocal commands to enable access to the variety oftelephone services made available to user by the intelligent callplatform, the above described platform would function equally well usingpushbutton entry of DTMF digit commands as opposed to vocal commands.Alternatively, both voice and/or vocal commands could be utilized.

It should be appreciated by those skilled in the art that the specificembodiments disclosed above may be readily utilized as a basis formodifying or designing other structures for carrying out the samepurposes of the present invention. It should also be realized by thoseskilled in the art that such equivalent constructions do not depart fromthe spirit and scope of the invention as set forth in the appendedclaims.

What is claimed is:
 1. A control platform for use between a remoteswitching system and an on-site telephone system including at least onetelephone, the platform comprising:means for interfacing the platformdirectly to the on-site telephone system; a trigger recognizer forrecognizing voice or DTMF command triggers input through the at leastone telephone; announcing means for providing predetermined messages;processor means, operative under the control of a program stored thereinand responsive to receipt of an incoming call from the remote switchingsystem, for identifying a source identifier of the incoming call; andthe processor means, further operative under the control of the programand responsive to receipt by the trigger recognizer of a first voice orDTMF command trigger during the ringing stage of the incoming call, forcontrolling the announcing means to announce to a user an identificationassociated with the source identifier of the incoming call.
 2. Thecontrol platform of claim 1, wherein the processor means is furtheroperative under the control of the program and responsive to receipt bythe trigger recognizer of a second command trigger entered by the user,for forwarding the incoming call to a selected service.
 3. The controlplatform of claim 2, wherein the selected service comprises playing amessage to the incoming call.
 4. The control platform of claim 2,wherein the selected service comprises recording a message from theincoming call.
 5. The control platform of claim 1, wherein the triggerrecognizer comprises a voice recognizer for recognizing characters andcommands spoken by the user.
 6. The control platform of claim 1, whereinthe trigger recognizer comprises a DTMF digit recognizer for recognizingDTMF digits entered by the user.
 7. A centralized control platform forproviding a variety of telephone services to a local telephone systemhaving at least one telephone, comprising:a local interface forconnecting the platform to the at least one telephone of the localtelephone system; a communications circuit for interfacing the platformto external communications means; and processing means interconnectedwith the local interface and communications circuit responsive toreceipt of an incoming call from the external communications means forproviding a user with command triggered access to a plurality oftelephone services, the processor further comprising:trigger recognitionmeans for recognizing voice or DTMF command triggers input by the userthrough the at least one telephone during the ringing stage of theincoming call; and announcing means for providing predetermined messagesto the user.
 8. The centralized control platform of claim 7 wherein theprocessing means further includes means for identifying a caller basedupon a caller I.D. number in an incoming call received over thecommunications circuit and for controlling the announcing means toannounce the identified caller in response to receipt of a commandtrigger by the trigger recognition means.
 9. The control platform ofclaim 8 wherein the processing means further includes means forforwarding the incoming call to a selected calling service in responseto receipt of a command trigger by the trigger recognition means. 10.The control platform of claim 9, wherein the selected calling servicecomprises playing a message to the incoming call.
 11. The controlplatform of claim 9, wherein the selected calling service comprisesrecording a message from the incoming call.
 12. The control platform ofclaim 7 wherein the processing means further includes means forforwarding all incoming calls to a telephone service for recordingmessages in response to receipt of a command trigger by the triggerrecognition means.
 13. The control platform of claim 7 wherein theprocessing means further includes means for providing access to aselected peripheral system by the control platform in response toreceipt of a command trigger by the trigger recognition means.
 14. Thecentralized control platform of claim 13 wherein the processing meansfurther include means for controlling the accessed peripheral systemthrough a telephone handset in response to receipt of a command triggerby the trigger recognition means.
 15. The control platform of claim 7wherein the processing means further includes means for controlling theannouncing means to request a user to enter information identifying adestination number to be dialed in response to receipt of a firstcommand trigger by the trigger recognition means.
 16. The controlplatform of claim 15 wherein the processing means further includes meansfor transferring the information identifying the destination number outover the communications circuit to a destination to which the numbercorresponds in response to receipt of a second command trigger by thetrigger recognition means.
 17. The control platform of claim 15 whereinthe processing means further includes means for storing the informationidentifying the destination number for subsequent retrieval and use bythe user in response to receipt of a command trigger by the triggerrecognition means.
 18. The control platform of claim 15 wherein thetrigger recognition means comprises a voice recognizer and theinformation identifying the destination number comprises voice commands.19. The control platform of claim 15 wherein the trigger recognitionmeans comprises a DTMF digit recognizer and the information identifyingthe destination number comprises DTMF digits.
 20. The centralizedcontrol platform of claim 7 wherein the processing means furtherincludes:means for controlling the announcement means to request avalidation code to provide a user access to the platform in response toreceipt of a command trigger by the trigger recognition means; and meansfor providing access to the platform if the user enters a propervalidation code in response to a prompt issued by the platform followingreceipt of a command trigger by the trigger recognition means.
 21. Thecontrol platform of claim 7 wherein the processing means furtherincludes means for enabling the user to access messages for the user inresponse to an entered validation code.
 22. The centralized controlplatform of claim 21 wherein the processing means further includes meansfor controlling playback of the messages in response to receipt of acommand trigger by the trigger recognition means.
 23. The controlplatform of claim 7 wherein the control platform and the local telephonesystem are wireline connected.
 24. The control platform of claim 7wherein the control platform and the local telephone system arewirelessly connected.
 25. The control platform of claim 7 wherein thelocal telephone system comprises a PBX system.
 26. The control platformof claim 7 wherein the processing means further includes:means foraccessing a plurality of outbound telephone services for connection to aremote switching system in response to receipt of a first commandtrigger by the trigger recognition means; and means for initiating anoutbound call using one of the plurality of outbound telephone servicesin response to receipt of a second command trigger